export default {
	// 开启命名空间
	namespaced: true,

	// state 数据
	state: () => ({
		// 消息列表
		msg_list: [],
		// 最新消息
		latest_msg: {},
		msg_type: [{
			avatar: 'outtime_msg',
			color: '#f53f3f',
		}, {
			avatar: 'store_msg',
			color: '#94bfff',
		}, {
			avatar: 'invite_msg',
			color: '#639bee'
		}],
	}),

	// 方法
	mutations: {
		// 更新消息列表
		updateMessageList(state, msg_list) {
			msg_list.forEach(x => {
				if (x.msgType == 0)
					x.title = "过期提醒"
				else if (x.msgType == 1)
					x.title = "缺货提醒"
				else x.title = "邀请信息"
				x.icon = {
					avatar: state.msg_type[x.msgType].avatar,
					color: state.msg_type[x.msgType].color
				}
			})
			state.msg_list = msg_list
		},
		updateLatestMessage(state, msg) {
			if (msg == null) {
				state.latest_msg = []
				return
			}
			if (msg.msgType == 0)
				msg.title = "过期提醒"
			else if (msg.msgType == 1)
				msg.title = "缺货提醒"
			else msg.title = "邀请信息"
			msg.icon = {
				avatar: state.msg_type[msg.msgType].avatar,
				color: state.msg_type[msg.msgType].color
			}
			state.latest_msg = msg
		},
	},

	// 数据包装器
	getters: {
		msgIds(state) {
			const msgIds = []
			state.msg_list.forEach(({
				msgId
			}) => msgIds.push(msgId))
			return msgIds
		},
		unread_num(state) {
			let num = 0
			state.msg_list.forEach(x => {
				// 如果未读
				if (!x.read)
					num = num + 1
			})
			return num
		}
	}
}